package com.css.fxfzaqbz.modules.callJcData.service;

import com.css.fxfzaqbz.base.response.RestResponse;
import com.css.fxfzaqbz.modules.callJcData.entity.PageResult;
import com.css.fxfzaqbz.modules.callJcData.entity.Gasholder;
import com.css.fxfzaqbz.modules.callJcData.exception.ShpFieldException;
import com.css.fxfzaqbz.modules.callJcData.param.DataVersionPageParam;
import com.css.fxfzaqbz.modules.callJcData.param.GasholderQueryParams;
import com.css.fxfzaqbz.modules.callJcData.param.SysDataVersionPageParam;
import com.css.fxfzaqbz.modules.callJcData.result.ParsingResult;
import com.css.fxfzaqbz.modules.supergraph.entity.CqgDataEntity;
import com.css.fxfzaqbz.modules.supergraph.vo.GasholderBrVO;
import com.css.fxfzaqbz.modules.supergraph.vo.SourceOfDangerBrVO;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;


public interface GasholderService {

    void save(Gasholder gasholder);

    Gasholder findById(String id);

    void updateById(Gasholder param);

    void deleteById(String id);

    PageResult<Gasholder> page(GasholderQueryParams param);

    void dataImport(InputStream inputStream);

    void exportExcel(HttpServletResponse response)throws IOException;

    List<Gasholder> getDataByTypeAndVersion(SysDataVersionPageParam sysDataVersionPageParam);

    RestResponse saveShpTemporaryData(ParsingResult shpData) throws ShpFieldException;

    void deleteByVersion(String versionCode);

    void updateByLsVersion(String tempVersionCode,String dataVersion,Integer sf);

    List<Gasholder> getYwData(String versionCode);

    void updateLs(String versionCode, String tempVersionCode);

    void saveGasholderBr(GasholderBrVO gasholderBrVO);

    void deleteGasholderBr(String iaId,String dataVersion);

    List<Gasholder> getDataBySSQAndVersion(SourceOfDangerBrVO sourceOfDangerBrVO);

    Map<String,Object> getCqgDataVersion(CqgDataEntity cqgDataEntity);

    RestResponse getFyYwData(DataVersionPageParam dataVersionPageParam);

    List<Gasholder> getGasholderNumByVersion(String versionCode);
}
